home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
diskutil
/
noahdi.zoo
/
noahdi
/
dma.h
< prev
next >
Wrap
C/C++ Source or Header
|
1992-05-24
|
2KB
|
69 lines
/*
File: DMA.H Atari ST DMA device.
Oct 1988. V1.00 T.H. Schipper
*/
/* References:
* Atari Toolkit page 933
* c't Magazin 88/3 page 265
*/
/*
Copyright (c) 1988 - 1991 by Ted Schipper.
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation.
This software is provided AS IS with no warranties of any kind. The author
shall have no liability with respect to the infringement of copyrights,
trade secrets or any patents by this file or any part thereof. In no
event will the author be liable for any lost revenue or profits or
other special, indirect and consequential damages.
*/
#define DMA_ADDR 0xFF8600L /* DMA device addres */
#define DMA ((struct dma_chip *) DMA_ADDR)
struct dma_chip {
short reserved[2]; /* reserved registers */
short DATA; /* controller & sector count reg */
short MODE; /* mode & status register */
char ADDR[6]; /* base addres. High/Mid/Low */
} ;
/* pseudo names */
#define SECT_CNT DATA
#define STATUS MODE
/* offset into addr, odd bytes used only */
#define HIGH 1
#define MID 3
#define LOW 5
/* Mode Register bits */
#define NOT_USED 0x0001 /* not used bit */
#define A0 0x0002 /* A0 line, A1 on DMA port */
#define A1 0x0004 /* A1 line, not used on DMA port */
#define HDC 0x0008 /* HDC / FDC register select */
#define SC_REG 0x0010 /* Sector count register select */
#define RESERVED5 0x0020 /* reserved for future expansion ? */
#define RESERVED6 0x0040 /* bit has no function */
#define NO_DMA 0x0080 /* disable / enable DMA transfer */
#define DMA_WR 0x0100 /* Write to / Read from DMA port */
/* Status Register bits */
#define DMA_OK 0x0001 /* DMA transfer went OK */
#define SC_NOT_0 0x0002 /* Sector count register not zero */
#define DATA_REQ 0x0004 /* DRQ line state */